Environment
SNA-IP
Every day, for all sorts of reasons, more and more companies are focusing on the consolidation of the multiple specialized networks they directly operate or lease from service providers onto a single protocol network. These multiple specialized networks are based on diverse networking technologies such as Systems Network Architecture (SNA), Internet Protocol (IP) or Internetwork Packet Exchange (IPX). These companies are making this consolidation one of their top priorities and usually select IP (the Internet Protocol) as their protocol of choice. However, for many of these companies that are using SNA protocols and applications, there is a major requirement to retain access to the huge amount of existing corporate data residing in traditional mainframes and accessible through SNA applications.
Internet
The Internet is a global network of computers and computer networks (the “Net”). The Internet connects computers that use a variety of different operating systems or languages, including UNIX, DOS, Windows, Macintosh, and others. To facilitate and allow the communication among these various systems and languages, the Internet uses a protocol referred to as TCP/IP (“Transmission Control Protocol/Internet Protocol”). TCP/IP protocol supports three basic applications on the Internet:                transmitting and receiving electronic mail,        logging into remote computers (the “Telnet”), and        transferring files and programs from one computer to another (“FTP” or “File Transfer Protocol”).World Wide Web        
With the increasing size and complexity of the Internet, tools have been developed to help find information on the network, often called navigators or navigation systems. The World Wide Web (“WWW” or “the Web”) is a recent superior navigation system. The Web is:                an Internet-based navigation system,        an information distribution and management system for the Internet, and        a dynamic format for communicating on the Web.        
The Web seamlessly integrates different formats of information, including still images, text, audio and video. A user on the Web using a graphical user interface may transparently communicate with different host computers on the system, and different system applications (including FTP and Telnet), and different information formats for files and documents including, for example, text, sound and graphics.
Uniform Resource Locators
A resource of the Internet is unambiguously identified by a Uniform Resource Locator (URL), which is a pointer to a particular resource at a particular location. A URL specifies the protocol used to access a server (e.g. HTTP, FTP,), the name of the server, and the location of a file on that server.
Hyper Text Transfer Protocol
Each Web page that appears on a client of the Web may appear as a complex document that integrates, for example, text, images, sounds and animation. Each Web page may also contain hyperlinks to other Web documents so that a user at a client computer using a mouse may activate a hyperlink jump to a new page (which is a graphical representation of another document file) on the same or on a different Web server.
A Web server is a software program on a Web host computer that answers requests from Web clients, typically over the Internet. The whole Web uses a language or protocol to communicate with Web clients that is called Hyper Text Transfer Protocol (“HTTP”). All types of data can be exchanged among Web servers and clients using this protocol, including documents formatted in Hyper Text Markup Language (“HTML”), and graphics, sounds and video data. HTML describes the layout, contents and hyperlinks of documents and pages. Web clients when browsing:                convert user specified commands into HTTP GET requests,        connect to the appropriate Web server to get information,        wait for a response. The response from the server can be the requested document or an error message.        
After the document or an error message is returned, the connection between the Web client and the Web server is closed. The first version of HTTP is a stateless protocol. That is, there is no continuous connection between each client and each server. The Web client using HTTP receives a response as HTML data or as other data. This description applies to version 1.0 of the HTTP protocol, while the new version breaks this barrier of stateless protocol by keeping the connection between the server and client alive under certain conditions.
Browser
After receipt, the Web client formats and presents the data or activates an ancillary application such as a sound player to present the data. To do this, the server or the client determines the various types of data received. The Web Client is also referred to as the Web Browser, since it in fact browses documents retrieved from the Web Server.
Note: More explanations about the Internet can be found in the following publication incorporated herewith by reference: “Internet in a nutshell” by Valerie Quercia, published by O'Reilly, October 1997.
TN3270
In an IP environment, a widely used technique for the transport of SNA information across an IP network is the use of Telnet technologies (TN3270). This technique for SNA “green screen” workstation users is a Client/Server approach. “Host On Demand” from IBM or “WebClient” from CISCO are examples of Client software implementations. Network Utility from IBM or CISCO router's offerings are typical Server Implementations (hardware and software). The “Client” piece usually runs within the customer's workstation while the “Server” piece is usually placed in front of the customer's Data Center mainframes (or sometimes directly within the mainframe itself) or within the customer's branch offices. As illustrated in FIG. 3, IP protocols are used between the Server and the Clients, while traditional SNA protocols are used between the Server and the target Applications. More information concerning Telnet, TN3270 and Network Utility can be found In the following publications incorporated herewith by reference:
“IBM 2216/Network Utility Host Channel Connection”, Erol Lengerli, Jacinta Carbonell, Thomas Grueter; IBM International Technical Support Organization, January 1999, SG24-5303-00.
“IBM Network Utility Description and Configuration Scenarios”, Tim Kearby, Peter Gayek, Gallus Schlegel, Imre Szabo, Zhi-Yong Zhang; IBM International Technical Support Organization, January 1999, SG24-5289-00.
“Internetworking with TCP/IP-Volume 1-Principles, Protocols, and Architecture” Douglas E. Corner, Second Edition, Prentice Hall 1991.
Request For Comments (RFCs) from the Internet Engineering Task Force (IETF):                RFC 1576: TN3270 Current Practices,        RFC 1646: TN3270 Extensions for LU name and Printer Selection,        RFC 1647: TN3270 Enhancements,        RFC 2355: TN3270 Enhancements.On Demand Clients        
As illustrated in FIG. 4, an on-demand Client (401) is a means by which SNA applications can be accessed from an Internet Browser (403). The on-demand Client is based on the Java language, and thus requires a Java-capable Browser (403). Nothing else is required in the Client workstation (405), except for a connection to the Internet or to another TCP/IP network (404). A TN3270 (or other Telnet such as TN5250) Client programmed in Java constitutes an on-demand Client. To use an on-demand Client, users need to be connected somewhere in the network to a Web Server (402) used as a Java Applet repository application. The TN3270 (or other Telnet) Java Applet is downloaded (406) from this Web Server (402) to the workstation (405). An on-demand Client allows Web users to access host programs without explicitly installing a permanent 3270 terminal emulator such as IBM's PCOMM on their workstation (405). A Java-capable Web Browser (403) is all that users need. Among the multiple advantages associated with on-demand services, one may list:
No end-user installation or configuration is required to establish a screen session;
The user browser remains available for concurrent Web use.
The distribution of emulator software updates with Java is cost-effective. By placing a new version of the Java Applet within the Web Server repository application, all user workstations using this Server will obtain the new version the next time they access the Web Server repository application.
An on-demand Client is Java-based, so users in different operating environments (whether they are using network computers, traditional personal computers, or advanced workstations) get the same look and feel.
A Java-based Application Programming Interface (API) for application development is available to customize desktops.
Note: More explanations concerning the Java language can be found in the following publication incorporated herewith by reference: “Java Network Programming” by Elliotte Rusty Harold, published by O'Reilly, February 1997.
Optionally, these downloadable on-demand TN3270 Clients may be saved within the user's workstation to avoid the downloading process when the version saved is the latest version available. When the locally saved version of the Client is started, there is some chit chat between the Client and the Web Server repository application used for on-demand Client downloading, to determine whether the locally saved version is the same as the version currently available on the Web Server:
If version levels match, the locally saved version and the version provided by the Web Server are identical and there is no need for a download.
If the version levels differ, the latest version from the Web Server is downloaded within the user's workstation and is locally saved. The latest version therefore replaces the older version.
This process saves time at invocation, as the Client is only downloaded in the case where a more up-to-date version has been placed within the Web Server. Saving the more recent copy of the Client within the user's workstation allows the Client to be run, even in the advent of a temporary failure or unavailability of the Web Server used for the on-demand Client downloading or in cases where the user does not want this downloading step to occur every logon time.
Application Selection Processor
Traditional SNA End-to-End
In the SNA world, workstation users traditionally obtain access to their favorite SNA applications by connecting first to an intermediate application. This intermediate application (called the “application selection processor”) provides a connection to the real target selection processor presents to the user a selection menu (called the “selection screen”) of all the possible SNA applications that a user may access. FIG. 1 describes a traditional SNA access to an application selection processor in an SNA environment.
First step (101): The user is presented by the application selection processor a selection screen of a plurality of possible applications (three possible applications A, B and C are shown). Usually, the workstation (WS) automatically sets up a direct connection to the application selection processor, as soon as the workstation's SNA protocol stack is started (or in case of a “dumb” terminal, when the terminal is powered on).
Second step (102): Provided that at this time, the application selection processor is up and running, the connected user selects an application (application A) by typing an application name on the selection screen.
Third step (103): Finally, the user gets connected to the desired application (application A).
Telnet 3270 Based Approach
In a TN3270 Client-Server approach, one technique is to provide the intermediate application selection processor via a Web Server implementation. In this case, the user accesses the application selection processor within the Web Server, using his favorite Web Browser. This approach is described in FIG. 2:
First step (201): The user gets from the application selection processor In the Web Server a selection screen with his favorite Web Browser listing three applications A, B and C. selection screen
Second step (202): The user chooses application C from the selection screen and obtains back from the Web Server the address —SS—for the Telnet Server (S) providing access to the mainframe housing application C.
Third step (203): Then, the local Telnet Client may be started either manually or automatically to access the preferred Telnet Server by using the address provided by the application selection processor. The user gets back the address of the Telnet Server (Server S which address is SS) and connects to the target application C via the appropriate Server (Telnet Server S).
Going through an application selection processor, shields end-users from changes that inevitably occur, for example:                when an application is moved to a different Host, or        when a new application is added.        
In such cases, only the selection screen is modified and changes in target application locations are completely transparent to the workstations. The workstations are not impacted by changes in target application locations.
Another advantage is that users connect to a single intermediate application (the application selection processor) that provides an access point to the many possible SNA applications, wherever they are located. The use of an intermediate, menu-driven application selection processor greatly simplifies the task of the workstation users that automatically obtain access to an user friendly, menu driven, application selection menu (the selection screen) and are not concerned by manual definitions that need to be performed and maintained over changes.
On Demand Application Selection
Unpublished European patent application 99480019.7 entitled “Method and System for Local Application Selection with Customizable User Profiling” (Giroir et al.) relates to the transmission of Systems Network Architecture (SNA) information through the Internet Protocol (IP) network, and more particularly to a method and system for locally selecting an application from a Web Client in an Internet protocol (IP) network. A software package locally runs within user's workstations, for selecting applications across the network, wherever they are located. When this is required, the software is dynamically downloaded from one or a plurality of on-demand Application Selection Web Servers (an “application selection processor” Web Server repository application and a “selection screen” Web Server repository application) accessible via the Internet Protocol (IP) network. Two Web Servers are not required and the same Server may be used to provide both repositories, the application selection processor code and the associated selection screen (or set of screens). The method comprises the steps of:                locally selecting in a Web Client an application by means of:        an application selection processor previously transferred from an application selection processor Web Server repository application;        a selection screen previously transferred from a selection screen Web Server repository application; and        accessing the selected application from the Telnet 3270 Client.Problem        
The very first time a workstation user needs to access SNA Applications, the user has to access the Web Server repositories to obtain the latest version of the application selection processor and the associated selection screen.
After completion of this step, the workstation user then proceeds with the selection of the target application.
Based on the result of selecting an SNA Application via the application selection processor, the workstation user then has to access another Web Server repository (the on-demand Client Web Server) to obtain the latest version of the Telnet Client emulator the workstation user decides to use (when several are possible), according to the type of the SNA Application to be accessed.
Once this step has been done, the Client may be started with the name/address of the preferred Telnet Server as input to access the target application that was selected on the first step.
All of these steps have to be done one after the other and the initialization of the application selection processor and selection screen and of the Web Clients is not transparent to the workstation user. In fact, the user needs to know (and needs to specify within the Web Browser) the Uniform Resource Locators (URLs) associated with all Web Server repositories (application selection processor and selection screen Web Server repositories, all the Web Servers repositories used to provide on-demand Clients) that have been used to implement the service.
Once this initialization process has been done, the workstation has saved the current versions of all the programs that have been downloaded from the Web Servers (or Web Server) repository applications. The chaining from SNA application Selection and Client launching with proper name/address of the preferred Telnet 3270 Server can be automated, provided there is a single Client used for all SNA applications, which is generally not the case for “heavy duty” SNA users.